home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / autolib / auto_translate_param.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-11-18  |  2.0 KB  |  61 lines

  1. /*
  2. ### translate AUTO86 paramters into kaos parameters ###
  3. */
  4.  
  5. #include "../include/auto_kaos_def.h"
  6.  
  7. auto_translate_param(aux_win_i)
  8. int aux_win_i;
  9. {
  10.  
  11.     int i;
  12.     extern int var_dim,param_dim,full_dim;
  13.     extern int **aux_cur_index;
  14.     extern double **aux_x_min,**aux_x_max,*param;
  15.     /* AUTO86 declarations */
  16.     extern int auto_option,auto_nfpar,auto_ndim,auto_icp[];
  17.     extern double auto_rl0,auto_rl1,auto_a0,auto_a1,auto_par[];
  18.     extern char string[];
  19.  
  20.     /* set variable dimension and parameter dimension */
  21.     /* but it is not necessary at the moment to reset 
  22.     the existing value of variable dimension */
  23.     /* nvar_dim = auto_ndim; */
  24.     /* param_dim is not defined in AUTO86 ? */
  25.  
  26.     /* From FORTRAN index for free parameters of AUTO86 to C index */
  27.     /* This index should be reset before any use of free param indices */
  28.     for(i=0;i<auto_nfpar;i++) auto_icp[i] -= 1;
  29.  
  30.     /* set indices for auxiliary window to display AUTO86
  31.     bifurcation diagram or bifurcation set  automatically */
  32.     /* 1-parameter continuation */
  33.     if(auto_option==2){
  34.         aux_cur_index[aux_win_i][0] = full_dim + auto_icp[0]; /* principal parameter */
  35.         /* set func_dim >=1 always to make a room for L2 norm */
  36.         aux_cur_index[aux_win_i][1] = full_dim - 1; /* L2 norm */
  37.     }    
  38.  
  39.     /* 2-parameter continuation */
  40.     else if(auto_option==1 || auto_option==3){
  41.         aux_cur_index[aux_win_i][0] = full_dim + auto_icp[0];
  42.         aux_cur_index[aux_win_i][1] = full_dim + auto_icp[1];
  43.     }
  44.     aux_x_min[aux_cur_index[aux_win_i][0]][aux_win_i] = auto_rl0;
  45.     aux_x_max[aux_cur_index[aux_win_i][0]][aux_win_i] = auto_rl1;
  46.     aux_x_min[aux_cur_index[aux_win_i][1]][aux_win_i] = auto_a0;
  47.     aux_x_max[aux_cur_index[aux_win_i][1]][aux_win_i] = auto_a1;
  48.  
  49.     /* AUTO86 has AUTO_ALL_PARAM_DIM parameters.
  50.     Among them AUTO_FREE_PARAM_DIM are free parameters */
  51.  
  52.     if(param_dim > AUTO_FREE_PARAM_DIM){
  53.         sprintf(string,"Error: Reset first %d parameters ONLY!",AUTO_FREE_PARAM_DIM);
  54.         system_mess_proc(0,string);
  55.         for(i=0;i<AUTO_FREE_PARAM_DIM;i++) param[i] = auto_par[i];
  56.     }
  57.     else {
  58.         for(i=0;i<param_dim;i++) param[i] = auto_par[i];
  59.     }
  60. }
  61.